package org.opencms.free.balance;

import java.io.Serializable;

/**
 * Clase que representa un objeto de tipo BalanceFreeNode.
 */
public class BalanceFreeNode implements Serializable {

	/**
	 * Identificador unico del nodo.
	 */
	private int nodeId = 0;

	/**
	 * Nombre del nodo.
	 */
	private String nodeName = null;

	/**
	 * URL del nodo.
	 */
	private String nodeUrl = null;

	/**
	 * Constructor por defecto de la clase.
	 */
	public BalanceFreeNode() {
		// nop
	}

	/**
	 * Constructor con parametros de la clase.
	 */
	public BalanceFreeNode(final int nodeId, final String nodeName, final String nodeUrl) {
		super();
		this.nodeId = nodeId;
		this.nodeName = nodeName;
		this.nodeUrl = nodeUrl;
	}

	/**
	 * Metodo observador del atributo nodeId.
	 */
	public int getNodeId() {
		return nodeId;
	}

	/**
	 * Metodo modificador del atributo nodeId.
	 */
	public void setNodeId(final int nodeId) {
		this.nodeId = nodeId;
	}

	/**
	 * Metodo observador del atributo nodeName.
	 */
	public String getNodeName() {
		return nodeName;
	}

	/**
	 * Metodo modificador del atributo nodeName.
	 */
	public void setNodeName(final String nodeName) {
		this.nodeName = nodeName;
	}

	/**
	 * Metodo observador del atributo surname.
	 */
	public String getNodeUrl() {
		return nodeUrl;
	}

	/**
	 * Metodo modificador del atributo surname.
	 */
	public void setNodeUrl(final String nodeUrl) {
		this.nodeUrl = nodeUrl;
	}

	@Override
	public int hashCode() {
		return this.nodeId;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		BalanceFreeNode other = (BalanceFreeNode) obj;
		if (nodeId != other.nodeId)
			return false;
		return true;
	}

	@Override
	public String toString() {
		return this.nodeName + " " + this.nodeUrl + " (" + this.nodeId + ")";
	}
}